package org.casper.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import org.casper.bean.User;
import org.casper.util.DBUtil;

/**
 * t_user用户表的操作类
 * project_name:jdbctest<br>
 * package_name:org.casper.dao<br>
 * file_name:UserDAO.java<br>
 * @author Casper<br>
 * create_date:2015年10月10日 上午10:04:03<br>
 * modified_date:
 * description:
 *
 */
public class UserDAO {
	
	/**
	 * 增加一个用户
	 * description:
	 * 2015年10月10日 上午10:06:30
	 * casper
	 * void
	 */
	public int insertUser(User user){
		int resultCode = 0;
		try {
			Connection conn = DBUtil.getConn();
			PreparedStatement pstmt = conn.prepareStatement("insert into t_user(username,userpass) values(?,md5(?))");
			pstmt.setString(1, user.getUsername());
			pstmt.setString(2, user.getUserpass());
			resultCode = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBUtil.closeConn();
		}
		return resultCode;
	}
	
	/**
	 * 查询所有的用户信息
	 * description:
	 * 2015年10月10日 上午10:15:52
	 * casper
	 * ArrayList<User>
	 * @return
	 */
	public ArrayList<User> selectAllUsers(){
		ArrayList<User> allUsers = new ArrayList<User>();
		ResultSet rs = null;
		try {
			Connection conn = DBUtil.getConn();
			PreparedStatement pstmt = conn.prepareStatement("select * from t_user");
			rs = pstmt.executeQuery();
			User user = null;
			while(rs.next()){
				user = new User(rs.getInt("id"), rs.getString("username"), rs.getString("userpass"));
				allUsers.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			DBUtil.closeConn();
		}
		return allUsers;
	}
	
	
	/**
	 * 此main方法仅仅作为测试使用
	 * description:
	 * 2015年10月10日 上午10:11:35
	 * casper
	 * void
	 * @param args
	 */
	public static void main(String[] args) {
		UserDAO userDAO = new UserDAO();
		//System.out.println(userDAO.insertUser(new User("maxingping","maxingping")));
		for(User u:userDAO.selectAllUsers()){
			System.out.println(u);
		}
	}
}
